1. Field of the Invention
The present invention relates to computing devices, and more specifically to obtaining performance-related data in a constrained computing environment.
2. Description of the Related Art
Performance analysis typically requires collecting and processing real-time performance-related data. For measurements with a high degree of accuracy, the amount of data involved can exceed the processing and storage capabilities of constrained devices.
The experience a user has when interacting with a computing device is determined by many factors, such as factors related to software functionality, user interface design, device and software performance, and human perception. Performance-related factors include, but are not limited to, the speed with which a device executes system or user software, the rate of updates to the screen, processing time in response to user input, the variation in performance over time, and others.
Because performance related factors are critical to the user experience that a computing device can deliver, it is important to be able to quantify performance by way of measurement. When a performance measurement is performed using a computing device, the computing device typically executes a system software which in turn executes a performance testing software. The computing device generally contains a data store and retrieve mechanism where performance-related measurement data is stored during testing. The performance-related measurement is generally accessed by on-device or off-device data processing mechanism for processing and analysis of the performance data after completion of the performance testing software.
While the performance testing software is running, the measurement instrumentation software collects the performance measurement data and stores it for later use via the data store and retrieve mechanism. Once the performance measurement has finished, the data processing mechanism will retrieve the performance measurement data from data store and retrieve mechanism and process it to extract the relevant performance-related information. Generally, the higher the desired measurement accuracy, the longer the performance testing software is run which in turn leads to the larger the amount of performance data that needs to be captured.
A key aspect of performance analysis is to generate valid data while at the same time avoiding to disturb the measurement at runtime. Any overhead imposed by the measurement itself should be kept small. Specifically, the overhead of the measurement instrumentation software, the data store and retrieve mechanism, and the data processing mechanism should be small or negligible relative to the effort of the performance testing software. In general, this means that runtime processing should be simple and involve only very small amounts of code and data storage and retrieval should be located in low-latency storage on the device.
In constrained environments, such as mobile devices, processing and storage capabilities may be very limited. Therefore, performance measurements are subject to great restrictions. Unfortunately, in most mobile devices, measurement overhead must be kept to a minimum and in particular, only very simple processing and filtering of measurement data should be done at runtime. In addition, on-device data storage on mobile devices tend to be very limited and storage latency may be high. Consequently, traditional performance measurement methods do not map well onto constrained environments, or might not be applicable at all in constrained environments.
Accordingly, what is needed is a system and a method to measure performance of mobile devices while utilizing lesser amounts of processing power and data storage space.